1
Syntaxe Naturelle : La Philosophie de la Surcharge d'Opérateurs
AI037Lesson 17
00:00

La philosophie de Syntaxe Naturelle affirme que les types définis par l'utilisateur doivent se comporter comme citoyens de première classe. En implémentant la surcharge d'opérateurs, nous permettons aux classes d'utiliser une notation standard (comme + ou ==), ce qui réduit la charge cognitive et respecte le principe du moindre étonnement.

1. Anatomie et Aiguillage

Un opérateur est une fonction ayant un nom particulier : le mot-clé operator suivi d'un symbole. Un opérateur unaire a un seul opérande, tandis qu'un opérateur binaire en a deux. Lorsqu'il est défini comme une fonction membre, l'opérande de gauche est lié au pointeur implicite this (a.operator+(b)). Comme une fonction non-membre, les deux sont explicites (operator+(a, b)).

Surchargeable+ - * / % ^& | ~ ! = < >+= -= *= /= << >>== != <= >= && ||++ -- , ->* -> () []Non-surchargeable:: (Portée).* (Déréférencement membre). (Point)?: (Conditionnel)Tableau 14.1. Permissions des opérateurs (Réf. p. 684)

2. Contraintes et Éthique

C++ empêche la « vandalisation linguistique » : vous ne pouvez pas créer de nouveaux symboles (par exemple, **) ou redéfinir des opérations pour les types intégrés (par exemple, int + int). La précédence et l'associativité sont immuables. Principe architectural : Les classes définissant == s'intègrent naturellement aux algorithmes de bibliothèque comme std::find.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>